package cn.edu.sdjzu.knoverse.utils;

import cn.hutool.crypto.digest.DigestUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 密码加密工具类
 */
@Component
public class PasswordEncoder {

    @Value("${knoverse.security.password-salt}")
    private String passwordSalt;

    /**
     * 加密密码
     *
     * @param password 原始密码
     * @return 加密后的密码
     */
    public String encode(String password) {
        return DigestUtil.sha256Hex(password + passwordSalt);
    }

    /**
     * 验证密码
     *
     * @param rawPassword     原始密码
     * @param encodedPassword 加密后的密码
     * @return 是否匹配
     */
    public boolean matches(String rawPassword, String encodedPassword) {
        return encode(rawPassword).equals(encodedPassword);
    }
} 